In a computer networking environment, data streams can be sent between computing devices interconnected within the network. For example, a client computing device may request information from a remote server communicatively coupled to the client computing device via a network such as the Internet. The server may respond to such a request by transmitting the requested information in the form of a data stream. In some instances, the server (or another computing device) also may provide one or more additional data streams to the client computing device. Each of the data streams may include sequential blocks of data, which may be related to one another with respect to precise timing. That is, a block of data from the first stream may correspond to a block of data from the second stream from a precise timing perspective. However, the nature of computer networking presents particular problems for synchronizing data streams that are transmitted from one or more servers to a client computing device. For example, blocks of data may not necessarily follow the same routes over networks, nor reach their destinations at the same times. The data blocks have to be reassembled and reconstructed by the client computing device. Significant technological difficulties are present due to potentially differing latencies, and it may be very difficult to determine which blocks of data in the two data streams correspond to one another. There is a need for technological advancements that permit the efficient and accurate synchronization by reassembly and reconstruction of two or more data streams.